home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / dev / RCS / tty.h,v < prev    next >
Text File  |  1990-07-17  |  8KB  |  353 lines

  1. head     1.5;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.5
  10. date     90.07.16.22.52.06;  author shirriff;  state Exp;
  11. branches ;
  12. next     1.4;
  13.  
  14. 1.4
  15. date     89.03.13.16.22.18;  author ouster;  state Exp;
  16. branches ;
  17. next     1.3;
  18.  
  19. 1.3
  20. date     89.03.11.11.59.22;  author ouster;  state Exp;
  21. branches ;
  22. next     1.2;
  23.  
  24. 1.2
  25. date     89.01.11.14.55.08;  author rab;  state Exp;
  26. branches ;
  27. next     1.1;
  28.  
  29. 1.1
  30. date     88.06.21.12.07.48;  author ouster;  state Exp;
  31. branches ;
  32. next     ;
  33.  
  34.  
  35. desc
  36. @@
  37.  
  38.  
  39. 1.5
  40. log
  41. @Added IOC_TTY_NOT_CONTROL_TTY
  42. @
  43. text
  44. @/*
  45.  * tty.h --
  46.  *
  47.  *    This file defines the device-dependent IOControl calls and related
  48.  *    structres for "tty" devices.  These devices are supposed to behave
  49.  *    identically to tty's in 4.2 BSD UNIX.  See the UNIX documentation
  50.  *    for detailed documentation.
  51.  *
  52.  * Copyright 1987 Regents of the University of California
  53.  * All rights reserved.
  54.  * Permission to use, copy, modify, and distribute this
  55.  * software and its documentation for any purpose and without
  56.  * fee is hereby granted, provided that the above copyright
  57.  * notice appear in all copies.  The University of California
  58.  * makes no representations about the suitability of this
  59.  * software for any purpose.  It is provided "as is" without
  60.  * express or implied warranty.
  61.  *
  62.  * $Header: /sprite/src/lib/include/dev/RCS/tty.h,v 1.4 89/03/13 16:22:18 ouster Exp Locker: shirriff $ SPRITE (Berkeley)
  63.  */
  64.  
  65. #ifndef _TTY
  66. #define _TTY
  67.  
  68. /*
  69.  * Constants:  these are the IOControl operations defined for tty's.
  70.  * For compatibility, the UNIX IOControl names are defined as well
  71.  * as the corresponding Sprite names.
  72.  */
  73.  
  74. #define IOC_TTY (1<<16)
  75.  
  76. #define IOC_TTY_GET_PARAMS    (IOC_TTY | 0x2)
  77. #define IOC_TTY_SET_PARAMS    (IOC_TTY | 0x3)
  78. #define IOC_TTY_GETP        IOC_TTY_GET_PARAMS
  79. #define IOC_TTY_SETP        IOC_TTY_SET_PARAMS
  80. #define IOC_TTY_SETN        (IOC_TTY | 0x4)
  81. #define IOC_TTY_EXCL        (IOC_TTY | 0x5)
  82. #define IOC_TTY_NXCL        (IOC_TTY | 0x6)
  83. #define IOC_TTY_HUP_ON_CLOSE    (IOC_TTY | 0x7)
  84. #define IOC_TTY_FLUSH        (IOC_TTY | 0x8)
  85. #define IOC_TTY_INSERT_CHAR    (IOC_TTY | 0x9)
  86. #define IOC_TTY_SET_BREAK    (IOC_TTY | 0xa)
  87. #define IOC_TTY_CLEAR_BREAK    (IOC_TTY | 0xb)
  88. #define IOC_TTY_SET_DTR        (IOC_TTY | 0xc)
  89. #define IOC_TTY_CLEAR_DTR    (IOC_TTY | 0xd)
  90. #define IOC_TTY_GET_TCHARS    (IOC_TTY | 0x11)
  91. #define IOC_TTY_SET_TCHARS    (IOC_TTY | 0x12)
  92. #define IOC_TTY_GET_LTCHARS    (IOC_TTY | 0x13)
  93. #define IOC_TTY_SET_LTCHARS    (IOC_TTY | 0x14)
  94. #define IOC_TTY_BIS_LM        (IOC_TTY | 0x15)
  95. #define IOC_TTY_BIC_LM        (IOC_TTY | 0x16)
  96. #define IOC_TTY_GET_LM        (IOC_TTY | 0x17)
  97. #define IOC_TTY_SET_LM        (IOC_TTY | 0x20)
  98. #define IOC_TTY_GET_DISCIPLINE    (IOC_TTY | 0x21)
  99. #define IOC_TTY_SET_DISCIPLINE    (IOC_TTY | 0x22)
  100. #define IOC_TTY_ADD_EVENT    (IOC_TTY | 0x23)
  101. #define IOC_TTY_GET_TERMIO      (IOC_TTY | 0x24)
  102. #define IOC_TTY_SET_TERMIO      (IOC_TTY | 0x25)
  103. #define IOC_TTY_GET_WINDOW_SIZE    (IOC_TTY | 0x26)
  104. #define IOC_TTY_SET_WINDOW_SIZE (IOC_TTY | 0x27)
  105. #define IOC_TTY_NOT_CONTROL_TTY    (IOC_TTY | 0x28)
  106.  
  107. /*
  108.  * The data structures defined below just duplicate the 4.2 BSD data
  109.  * structures with the same names.  All of this should be eliminated
  110.  * once the kernel has been changed to use the new ttyDriver.
  111.  */
  112.  
  113. #ifndef _IOCTL
  114. #include <sys/ioctl.h>
  115. #endif
  116.  
  117. typedef struct sgttyb Tty_BasicParams;
  118.  
  119. typedef struct tchars Tty_Chars;
  120.  
  121. typedef struct ltchars Tty_LocalChars;
  122.  
  123. #endif _TTY
  124. @
  125.  
  126.  
  127. 1.4
  128. log
  129. @Added back enough stuff to allow the kernel to compile.  Delete this
  130. later when the kernel tty stuff changes.
  131. @
  132. text
  133. @d19 1
  134. a19 1
  135.  * $Header: /sprite/src/lib/include/dev/RCS/tty.h,v 1.2 89/01/11 14:55:08 rab Exp Locker: ouster $ SPRITE (Berkeley)
  136. d62 1
  137. @
  138.  
  139.  
  140. 1.3
  141. log
  142. @Eliminate stuff that conflicts with sys/ioctl.h.
  143. @
  144. text
  145. @d27 2
  146. a28 2
  147.  * Eventually, Sprite should probably switch back to just using the
  148.  * original UNIX ioctl names.
  149. d62 16
  150. @
  151.  
  152.  
  153. 1.2
  154. log
  155. @*** empty log message ***
  156. @
  157. text
  158. @d19 1
  159. a19 1
  160.  * $Header: /sprite/src/lib/include/dev/RCS/tty.h,v 1.1 88/06/21 12:07:48 ouster Exp Locker: rab $ SPRITE (Berkeley)
  161. d27 2
  162. a28 2
  163.  * For compatibility, the UNIX IOControl names are defined as well
  164.  * as the corresponding Sprite names.
  165. d60 2
  166. a61 173
  167.  
  168. #ifndef TIOCGETP
  169.  
  170. #define TIOCGETP        IOC_TTY_GET_PARAMS
  171. #define TIOCSETP        IOC_TTY_SET_PARAMS
  172. #define TIOCSETN        IOC_TTY_SETN
  173. #define TIOCEXCL        IOC_TTY_EXCL
  174. #define TIOCNXCL        IOC_TTY_NXCL
  175. #define TIOCHPCL        IOC_TTY_HUP_ON_CLOSE
  176. #define TIOCFLUSH        IOC_TTY_FLUSH
  177. #define TIOCSTI            IOC_TTY_INSERT_CHAR
  178. #define TIOCSBRK        IOC_TTY_SET_BREAK
  179. #define TIOCCBRK        IOC_TTY_CLEAR_BREAK
  180. #define TIOCSDTR        IOC_TTY_SET_DTR
  181. #define TIOCCDTR        IOC_TTY_CLEAR_DTR
  182. #define TIOCGPGRP        IOC_GET_OWNER
  183. #define TIOCSPGRP        IOC_SET_OWNER
  184. #define TIOCGETC        IOC_TTY_GET_TCHARS
  185. #define TIOCSETC        IOC_TTY_SET_TCHARS
  186. #define TIOCGLTC        IOC_TTY_GET_LTCHARS
  187. #define TIOCSLTC        IOC_TTY_SET_LTCHARS
  188. #define TIOCLBIS        IOC_TTY_BIS_LM
  189. #define TIOCLBIC        IOC_TTY_BIC_LM
  190. #define TIOCLGET        IOC_TTY_GET_LM
  191. #define TIOCLSET        IOC_TTY_SET_LM
  192. #define TIOCGETD        IOC_TTY_GET_DISCIPLINE
  193. #define TIOCSETD        IOC_TTY_SET_DISCIPLINE
  194. #ifndef FIONREAD
  195. #define FIONREAD        IOC_NUM_READABLE
  196. #endif
  197.  
  198.  
  199. /*
  200.  * The data structures defined below just duplicate the 4.2 BSD data
  201.  * structres with the same names.
  202.  */
  203.  
  204. typedef struct sgttyb {
  205.     char    sg_ispeed;
  206.     char    sg_ospeed;
  207.     char    sg_erase;
  208.     char     sg_kill;
  209.     short    sg_flags;
  210. } Tty_BasicParams;
  211.  
  212. typedef struct tchars {
  213.     char t_intrc;
  214.     char t_quitc;
  215.     char t_startc;
  216.     char t_stopc;
  217.     char t_eofc;
  218.     char t_brkc;
  219. } Tty_Chars;
  220.  
  221. typedef struct ltchars {
  222.     char t_suspc;
  223.     char t_dsuspc;
  224.     char t_rprntc;
  225.     char t_flushc;
  226.     char t_werasc;
  227.     char t_lnextc;
  228. } Tty_LocalChars;
  229.  
  230. /*
  231.  * Speed values: many of these may not be supported by Sprite.
  232.  */
  233.  
  234. #define B0        0
  235. #define B50        1
  236. #define B75        2
  237. #define B110        3
  238. #define B134        4
  239. #define B150        5
  240. #define B200        6
  241. #define B300        7
  242. #define B600        8
  243. #define B1200        9
  244. #define B1800        10
  245. #define B2400        11
  246. #define B4800        12
  247. #define B9600        13
  248. #define EXTA        14
  249. #define EXTB        15
  250. #define B19200        14
  251. #define B38400        15
  252.  
  253. /*
  254.  * Flag bits:  once again, not all 4.2 BSD features may be supported
  255.  * exactly.
  256.  */
  257.  
  258. #define ALLDELAY    0177400
  259. #define BSDELAY        0100000
  260. #define     BS0              0
  261. #define     BS1        0100000
  262. #define VTDELAY         040000
  263. #define     FF0              0
  264. #define     FF1         040000
  265. #define CRDELAY         030000
  266. #define     CR0              0
  267. #define     CR1         010000
  268. #define     CR2         020000
  269. #define     CR3         030000
  270. #define TBDELAY          06000
  271. #define     TAB0          0
  272. #define        TAB1      02000
  273. #define     TAB2      04000
  274. #define     XTABS      06000
  275. #define NLDELAY          01400
  276. #define     NL0              0
  277. #define     NL1          00400
  278. #define        NL2          01000
  279. #define        NL3          01400
  280. #define EVENP           0200
  281. #define ODDP           0100
  282. #define RAW            040
  283. #define CRMOD            020
  284. #define ECHO            010
  285. #define LCASE             04
  286. #define CBREAK             02
  287. #define TANDEM             01
  288.  
  289. /*
  290.  * Local mode word flags:
  291.  */
  292.  
  293. #define LCRTBS        000001
  294. #define LPRTERA        000002
  295. #define LCRTERA        000004
  296. #define LTILDE        000010
  297. #define LMDMBUF        000020
  298. #define LLITOUT        000040
  299. #define LTOSTOP        000100
  300. #define LFLUSHO        000200
  301. #define LNOHANG        000400
  302. #define LETXACK        001000
  303. #define LCRTKIL        002000
  304. #define LPASS8        004000
  305. #define LCTLECH        010000
  306. #define LPENDIN        020000
  307. #define LDECCTQ        040000
  308. #define LNOFLSH           0100000
  309.  
  310. /*
  311.  * Line disciplines:  only NTTYDISC is supported by Sprite.
  312.  */
  313.  
  314. #define OTTYDISC    0
  315. #define NETLDISC    1
  316. #define NTTYDISC    2
  317.  
  318. /*
  319.  * Default values for various control characters:
  320.  */
  321.  
  322. #define CTRL(x)    ('x' & 037)
  323.  
  324. #define CERASE        0177
  325. #define CKILL        CTRL(u)
  326. #define CINTR        CTRL(c)
  327. #define CQUIT        034
  328. #define CSTART        CTRL(q)
  329. #define CSTOP        CTRL(s)
  330. #define CEOF        CTRL(d)
  331. #define CBRK        0377
  332. #define CSUSP        CTRL(z)
  333. #define CDSUSP        CTRL(y)
  334. #define CRPRNT        CTRL(r)
  335. #define CFLUSH        CTRL(o)
  336. #define CWERASE        CTRL(w)
  337. #define CLNEXT        CTRL(v)
  338.  
  339. #endif
  340. @
  341.  
  342.  
  343. 1.1
  344. log
  345. @Initial revision
  346. @
  347. text
  348. @d19 1
  349. a19 1
  350.  * $Header: tty.h,v 2.1 88/02/17 19:21:19 nelson Exp $ SPRITE (Berkeley)
  351. d58 2
  352. @
  353.